/* QtLua -- Lua bindings for Qt
   Copyright (C) 2011, Jarek Pelczar

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 3 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General
   Public License along with this library; if not, write to the
   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301 USA

*/

#include "qluascriptdebuggerdefaultwidgetfactory_p.h"

#include "qluascriptdebuggerscriptwindow_p.h"
#include "qluascriptbreakpointswidget_p.h"
#include "qluascriptdebuggerstackwidget_p.h"
#include "qluascriptdebuggerlocalswidget_p.h"
#include "qluascriptdebuggercodewidget_p.h"

#include <QDebug>

QLuaScriptDebuggerDefaultWidgetFactory::QLuaScriptDebuggerDefaultWidgetFactory(QObject * parent) :
    QLuaScriptDebuggerWidgetFactoryInterface(parent)
{
}

QWidget * QLuaScriptDebuggerDefaultWidgetFactory::createWidget(QLuaScriptEngineDebugger::DebuggerWidget widget,
                                   QWidget * parent)
{
    switch(widget)
    {
    case QLuaScriptEngineDebugger::ScriptsWidget:
        return new QLuaScriptDebuggerScriptWindow(parent);
    case QLuaScriptEngineDebugger::BreakpointsWidget:
        return new QLuaScriptBreakpointsWidget(parent);
    case QLuaScriptEngineDebugger::StackWidget:
        return new QLuaScriptDebuggerStackWidget(parent);
    case QLuaScriptEngineDebugger::LocalsWidget:
        return new QLuaScriptDebuggerLocalsWidget(parent);
    case QLuaScriptEngineDebugger::CodeWidget:
        return new QLuaScriptDebuggerCodeWidget(parent);
    default:
        return NULL;
    }
}
